// 支持的语言
const SUPPORTED_LANGUAGES = {
    'zh': '中文',
    'en': 'English',
    'ja': '日本語',
    'ko': '한국어'
};

// 翻译字符串
const translations = {
    // 中文翻译
    'zh': {
        'app_title': '小智 AI 助手',
        'welcome_message': '你好！我是小智，很高兴为你服务。',
        'input_placeholder': '请输入消息...',
        'send_button': '发送',
        'login': '登录',
        'register': '注册',
        'username': '用户名',
        'password': '密码',
        'logout': '退出登录',
        'no_account': '还没有账号？',
        'have_account': '已有账号？',
        'typing': '小智正在输入...',
        'sorry_problem': '抱歉，我遇到了一些问题，无法回答您的问题。',
        'error_occurred': '抱歉，发生了错误：',
        'language': '语言',
        'theme': '主题',
        'light': '亮色',
        'dark': '暗色',
        'user_required': '用户名和密码不能为空',
        'username_short': '用户名至少需要3个字符',
        'password_short': '密码至少需要6个字符',
        'user_not_exist': '用户不存在',
        'wrong_password': '密码错误',
        'user_exists': '用户名已存在'
    },
    
    // 英文翻译
    'en': {
        'app_title': 'XiaoZhi AI Assistant',
        'welcome_message': 'Hello! I am XiaoZhi, happy to assist you.',
        'input_placeholder': 'Type a message...',
        'send_button': 'Send',
        'login': 'Login',
        'register': 'Register',
        'username': 'Username',
        'password': 'Password',
        'logout': 'Logout',
        'no_account': 'No account yet?',
        'have_account': 'Already have an account?',
        'typing': 'XiaoZhi is typing...',
        'sorry_problem': 'Sorry, I encountered a problem and cannot answer your question.',
        'error_occurred': 'Sorry, an error occurred: ',
        'language': 'Language',
        'theme': 'Theme',
        'light': 'Light',
        'dark': 'Dark',
        'user_required': 'Username and password cannot be empty',
        'username_short': 'Username must be at least 3 characters',
        'password_short': 'Password must be at least 6 characters',
        'user_not_exist': 'User does not exist',
        'wrong_password': 'Incorrect password',
        'user_exists': 'Username already exists'
    },
    
    // 日文翻译
    'ja': {
        'app_title': 'シャオジー AIアシスタント',
        'welcome_message': 'こんにちは！シャオジーです、お手伝いします。',
        'input_placeholder': 'メッセージを入力...',
        'send_button': '送信',
        'login': 'ログイン',
        'register': '登録',
        'username': 'ユーザー名',
        'password': 'パスワード',
        'logout': 'ログアウト',
        'no_account': 'アカウントをお持ちでない方',
        'have_account': 'すでにアカウントをお持ちの方',
        'typing': 'シャオジーは入力中...',
        'sorry_problem': '申し訳ありませんが、問題が発生したため、質問に答えられません。',
        'error_occurred': 'エラーが発生しました：',
        'language': '言語',
        'theme': 'テーマ',
        'light': 'ライト',
        'dark': 'ダーク',
        'user_required': 'ユーザー名とパスワードを入力してください',
        'username_short': 'ユーザー名は3文字以上必要です',
        'password_short': 'パスワードは6文字以上必要です',
        'user_not_exist': 'ユーザーが存在しません',
        'wrong_password': 'パスワードが間違っています',
        'user_exists': 'ユーザー名はすでに存在します'
    },
    
    // 韩文翻译
    'ko': {
        'app_title': '샤오즈 AI 어시스턴트',
        'welcome_message': '안녕하세요! 저는 샤오즈입니다, 도와드리겠습니다.',
        'input_placeholder': '메시지를 입력하세요...',
        'send_button': '보내기',
        'login': '로그인',
        'register': '회원가입',
        'username': '사용자 이름',
        'password': '비밀번호',
        'logout': '로그아웃',
        'no_account': '계정이 없으신가요?',
        'have_account': '이미 계정이 있으신가요?',
        'typing': '샤오즈가 입력 중...',
        'sorry_problem': '죄송합니다, 문제가 발생하여 질문에 답할 수 없습니다.',
        'error_occurred': '오류가 발생했습니다: ',
        'language': '언어',
        'theme': '테마',
        'light': '라이트',
        'dark': '다크',
        'user_required': '사용자 이름과 비밀번호를 입력해주세요',
        'username_short': '사용자 이름은 최소 3자 이상이어야 합니다',
        'password_short': '비밀번호는 최소 6자 이상이어야 합니다',
        'user_not_exist': '사용자가 존재하지 않습니다',
        'wrong_password': '비밀번호가 잘못되었습니다',
        'user_exists': '사용자 이름이 이미 존재합니다'
    }
};

// 获取当前语言
function getCurrentLanguage() {
    return localStorage.getItem('language') || 'zh';
}

// 设置语言
function setLanguage(lang) {
    if (translations[lang]) {
        localStorage.setItem('language', lang);
        updatePageLanguage();
        return true;
    }
    return false;
}

// 获取本地化字符串
function getLocalizedString(key) {
    const lang = getCurrentLanguage();
    return translations[lang]?.[key] || translations['zh'][key] || key;
}

// 更新页面语言
function updatePageLanguage() {
    // 获取所有带有data-i18n属性的元素
    const elements = document.querySelectorAll('[data-i18n]');
    
    // 更新每个元素的文本
    elements.forEach(el => {
        const key = el.getAttribute('data-i18n');
        if (key) {
            if (el.tagName === 'INPUT' && el.getAttribute('type') === 'text') {
                el.placeholder = getLocalizedString(key);
            } else {
                el.textContent = getLocalizedString(key);
            }
        }
    });
    
    // 更新页面标题
    document.title = getLocalizedString('app_title');
    
    // 更新输入框占位符
    const inputEl = document.getElementById('userInput');
    if (inputEl) {
        inputEl.placeholder = getLocalizedString('input_placeholder');
    }
}

// 创建语言选择器
function createLanguageSelector(containerId) {
    const container = document.getElementById(containerId);
    if (!container) return;
    
    const currentLang = getCurrentLanguage();
    
    // 创建语言选择器
    const langSelector = document.createElement('div');
    langSelector.className = 'language-selector';
    
    // 添加标签
    const label = document.createElement('span');
    label.textContent = getLocalizedString('language') + ': ';
    langSelector.appendChild(label);
    
    // 添加选择框
    const select = document.createElement('select');
    select.id = 'languageSelect';
    
    // 添加选项
    for (const [code, name] of Object.entries(SUPPORTED_LANGUAGES)) {
        const option = document.createElement('option');
        option.value = code;
        option.textContent = name;
        if (code === currentLang) {
            option.selected = true;
        }
        select.appendChild(option);
    }
    
    // 添加事件监听器
    select.addEventListener('change', function() {
        setLanguage(this.value);
    });
    
    langSelector.appendChild(select);
    container.appendChild(langSelector);
}

// 初始化语言设置
document.addEventListener('DOMContentLoaded', function() {
    // 如果没有设置语言，默认使用中文
    if (!localStorage.getItem('language')) {
        localStorage.setItem('language', 'zh');
    }
    
    // 更新页面语言
    updatePageLanguage();
});